import java.awt.Font;

import javax.swing.*;

import layout.TableLayout;

/**
* @file JSimuGeneralPanel.java
*
* @brief Diese Datei enthält die JSimuGeneralPanel-Klasse.
*
* @author Alrik Künne
*
* @date 01.06.2012 - erste Version
* @date 19.06.2012 - einige Veränderungen, Multi-Threading
**/

/** 
* @class JSimuGeneralPanel 
* 
* @brief Das Fenster, was oben rechts allgemeine Informationen einblendet
* 
* Diese Klasse ist ein Panel, das allgemeine Informationen zur Simulation darstellt
*/ 
@SuppressWarnings("serial")
public class JSimuGeneralPanel extends JRigthBorderedPanel {
	private JLabel passengers;
	private JLabel nextActionIn;
	public JLabel State;
	
	/**
	 * @brief Der Konstruktor
	 *
	 * initialisiert das Panel und pakt die Komponenten darauf
	 */
	public JSimuGeneralPanel(){
		super("Allgemein");
		//init
		passengers = new JLabel();
		nextActionIn = new JLabel();
		State = new JLabel();
		//Layout
		double[][] mlayout = new double[][]{
		        // X-Achse
		        { TableLayout.FILL},
		        {0.33,0.33,0.33}
		    };
		
		innerPanel.setLayout(new TableLayout(mlayout));
		innerPanel.add(State, "0,0");
		innerPanel.add(passengers,  "0,1");
		innerPanel.add(nextActionIn, "0,2");
		
	
		//design
		Font thebankfont = new Font("Dialog", Font.PLAIN, 25);
		State.setFont(thebankfont);
		passengers.setFont(thebankfont);
		nextActionIn.setFont(thebankfont);
		//werte
		setPassengers(0);
		setInSeconds(5);
	}
	
	/**
	 * @brief Die Methode zum Setzen der Fahrgastanzahl
	 *
	 * @param anz - die Anzahl der Personen
	 * 
	 * zeigt diese Anzahl im Panel an, auch 0 möglich
	 */
	public void setPassengers(int anz){
		passengers.setText("Passagiere: "+ Integer.toString(anz));
	}
	
	/**
	 * @brief Die Methode zum Setzen der Restzeit
	 *
	 * @param sec - der Wert in Sekunden
	 * 
	 * zeigt eine bestimmte Restzeit im Panel an
	 * wenn der Wert -1 beträgt, so wird nichts angezeigt, das Label bleibt aber erhalten.
	 */
	public void setInSeconds(int sec){
		if (sec!=-1){
			nextActionIn.setText("schließt in "+ Integer.toString(sec)+" sec");			
		}else{
			nextActionIn.setText("");			
		}

	}
}
